Declarace vs Definice metody v Delphi

Otázka od: Michal

1. 11. 2002 20:14

Ahojte,
D3 Enterprise

Chtel bych se zeptat, jestli byste mi mohl nekdo vysvetlit proc je
nasledujici priklad spravne (teda podle prekladace D3). Jedine vysvetleni by
bylo, ze v definici jiz nemusim psat parametry pokud nechci. Jak se ale bude
chovat program kdyz ho zkusim prelozit v D5, kde je umozneno pretezovani?

//-----------------
interface
TMyClass = class
public
  procedure MyMethod(Dataset: TDataset);
end;

implementation
procedure TMyClass.MyMethod;
begin
...
  if Dataset.State = dsEdit then
    Beep();
...
end;

...
  MyMethod(nil);
...
//-----------------

Michal



---
Odchozí zpráva neobsahuje viry.
Zkontrolováno antivirovým systémem AVG (http://www.grisoft.cz).
Verze: 6.0.408 / Virová báze: 230 - datum vydání: 24.10.2002

Odpovedá: Petr Vones

2. 11. 2002 15:48

From: "Michal" <delphi-konference@bcpraha.com>
> Chtel bych se zeptat, jestli byste mi mohl nekdo vysvetlit proc je
> nasledujici priklad spravne (teda podle prekladace D3). Jedine vysvetleni by
> bylo, ze v definici jiz nemusim psat parametry pokud nechci. Jak se ale bude

Ano, ale neni dobre to pouzivat, prave uz jen z duvodu ktery si zminil dale.

> chovat program kdyz ho zkusim prelozit v D5, kde je umozneno pretezovani?

Nepujde prelozit a dostanes chybove hlaseni:
[Error] Declaration of 'XY' differs from previous declaration

Petr Vones

Odpovedá: Jan Křížek

6. 11. 2002 18:18

> From: "Michal" <delphi-konference@bcpraha.com>
> > Chtel bych se zeptat, jestli byste mi mohl nekdo vysvetlit proc je
> > nasledujici priklad spravne (teda podle prekladace D3).
> Jedine vysvetleni by
> > bylo, ze v definici jiz nemusim psat parametry pokud
> nechci. Jak se ale bude
>
> Ano, ale neni dobre to pouzivat, prave uz jen z duvodu ktery
> si zminil dale.
>
> > chovat program kdyz ho zkusim prelozit v D5, kde je
> umozneno pretezovani?
>
> Nepujde prelozit a dostanes chybove hlaseni:
> [Error] Declaration of 'XY' differs from previous declaration
>

Ale pouze pokud pouzive overload directivu, jinak to jde i v D5.

Ja jsem pouzival definice bez uvadeni parametru. Ale pote co mi byla
prozrazena kombinace Ctrl+Shift+C, tak uz nepouzivam. Protoze napoprve
se mi parametry skopiruji sami a pri oprave se stejne musi dolu.

Honza +